iT邦幫忙

2022 iThome 鐵人賽

DAY 23
0
Mobile Development

上班到一半突然被通知被炒了的我只好來寫個賓果系列 第 23

Day23 點開遊戲看到按鈕直覺上應該會直接按按鈕吧?奇怪怎麼沒反應 是不會壞了?為了避免這樣,只好設個dialog

  • 分享至 

  • xImage
  •  

這兩天把連線數完成啦~這次來解決在輸入數字旁邊的格子沒有輸入任何數字時,不會有任何反應的問題。
先新增一個editText,再來設定只能輸入數字,以及設定輸入數字的位數為3位數,然後在dialog裡面的setView設定自己取的editText的名稱,再來設定訊息。
https://ithelp.ithome.com.tw/upload/images/20220919/20140063aULL9dpMQG.png

裡面的訊息我也設置在res/values/strings裡面
https://ithelp.ithome.com.tw/upload/images/20220919/20140063e6fRsEmh23.png

<string name="inputRange">輸入範圍:</string>
<string name="rangeOne">2x2~3x3=1~30</string>
<string name="rangeTwo">4x4~10x10=1~當前層數x10</string>

然後記得加到 checkInputNumber() 裡面:
https://ithelp.ithome.com.tw/upload/images/20220919/20140063O9QfNpoyqm.png

private void checkInputNumber() {
   String strBingoNumber = m_binding.etInput.getText().toString();
   if (m_binding.etInput.getText().toString().equals("")) {
       showDialogInputNumber();

   } else if (Integer.parseInt(strBingoNumber) > m_iSize * 10 || Integer.parseInt(strBingoNumber) < 1) {
       showDialogOverRange();
   } else {
       checkInputNumberRepeat();
   }
}

這樣就可以跳出輸入框來啦~~
再來就是把輸入的數字印進去按鈕裡,以及儲存到陣列裡。
https://ithelp.ithome.com.tw/upload/images/20220919/201400632xQiQvPGxR.png

private void showDialogInputNumber(){
   EditText etEditText = new EditText(MainActivity.this);
   etEditText.setInputType(InputType.TYPE_CLASS_NUMBER); //設定editText只能輸入數字
   etEditText.setFilters(new InputFilter[]{new InputFilter.LengthFilter(3)}); //設定editText輸入字數
   AlertDialog textTips = new AlertDialog.Builder(MainActivity.this)
           .setTitle(R.string.inputNumber)
           .setView(etEditText)
           .setMessage(getBaseContext().getString(R.string.inputRange) +"\n"+
                   getBaseContext().getString(R.string.rangeOne)+"\n"+
                   getBaseContext().getString(R.string.rangeTwo))
           .setPositiveButton(R.string.alert_dialog_ok, new DialogInterface.OnClickListener() {
               @Override
               public void onClick(DialogInterface dialog, int which) {
                   String strEdittext =etEditText.getText().toString();
                   m_alBingoButtons.get(m_iNowIndex).getButton().setText(strEdittext.replaceAll("^(0+)", ""));
                   m_alBingoButtons.get(m_iNowIndex).saveNumber(Integer.parseInt(strEdittext.replaceAll("^(0+)", "")));
               }
           }).create();
   textTips.show();
}

畫面:
https://ithelp.ithome.com.tw/upload/images/20220919/20140063mpJREuN93H.png
https://ithelp.ithome.com.tw/upload/images/20220919/20140063CrDmYzXnsf.png

目前可以順利的把數字印在按鈕上面了,但目前的輸入框並不會去判斷範圍,所以之後要來設定範圍以及數字是否重複那些東西,以及如果沒有輸入東西就按確定app是會閃退的,因為沒有給值,然後又有把editText轉成其他的資料型態,所以他會不知道要把什麼東西轉型態,所以就掛掉了,所以下一篇會來處理這些問題。


上一篇
Day22 賓果連線數計算完成!
下一篇
Day24 dialog什麼都不輸入按確定 閃退的問題
系列文
上班到一半突然被通知被炒了的我只好來寫個賓果30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言